package cn.nkpro.elcube.cloud;

import cn.nkpro.elcube.cloud.idds.IDDSConfig;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Map;
import java.util.HashMap;
import java.util.List;

@Data
@ConfigurationProperties(prefix = "nk.cloud")
public class NkCloudProperties {
    /**
     * ELCube 集群ID，多台相同业务类型的ELCube节点应该是一致的
     */
    private String id;
    /**
     * 运行模式
     */
    private Mode mode = Mode.STANDALONE;
    /**
     * master 的集群ID，仅mode=slave 时有效
     */
    private String mdmId;

    private IDDSConfig idds = new IDDSConfig();

    private List<String> providerIds = new ArrayList<>();
    private Map<String,Object> providerAuths = new HashMap<>();
    private List<String> subscribes = new ArrayList<>();

    public enum Mode{
        /**
         * 主数据节点
         */
        MDM,
        /**
         * 普通业务节点
         */
        CLOUD,
        /**
         * 单机模式
         */
        STANDALONE
    }
}
